#ifndef VECTOR3D_H
#define VECTOR3D_H
#include <iostream>
#include <cmath>

class Vector3D {
public:
	float x, y, z;
	Vector3D();
	Vector3D(float a, float b);
	Vector3D(float a, float b, float c);

	float dotProduct(const Vector3D& vec2);
	Vector3D crossProduct(const Vector3D& vec2);
	float length();
	void normalize();

	void change(float a, float b, float c);
	void change(Vector3D vec2);
	void changeX(float a);
	void changeY(float a);
	void changeZ(float a);

	Vector3D operator+(const Vector3D& vec2);
	Vector3D operator-(const Vector3D& vec2);
	Vector3D operator*(float num);
	Vector3D operator/(float num);

	Vector3D& operator+=(const Vector3D& vec2);
	Vector3D& operator-=(const Vector3D& vec2);
	Vector3D& operator*=(float num);
	Vector3D& operator/=(float num);

	bool operator==(const Vector3D vec2);
	bool operator!=(const Vector3D vec2);

	friend std::ostream& operator<<(std::ostream& out, const Vector3D& vec);
};

#endif
